// 空气密度计算函数
function calculateAirDensity() {
    // 获取输入值
    const temperature = parseFloat($('#temperature').val());
    const humidity = parseFloat($('#humidity').val());
    const atmospheric = parseFloat($('#atmospheric').val());

    // 验证输入是否有效
    if (isNaN(temperature) || isNaN(humidity) || isNaN(atmospheric)) {
        return; // 输入不完整或无效时不计算
    }

    // 空气密度计算公式 (理想气体定律修正版)
    // 公式来源: ρ = (P * M) / (R * T) 考虑水蒸气影响
    // P: 大气压力 (hPa转换为Pa: *100)
    // T: 绝对温度 (℃转换为K: +273.15)
    // M: 干空气摩尔质量 (约0.0289644 kg/mol)
    // R: 通用气体常数 (8.31432 J/(mol·K))
    // 湿度修正: 水蒸气压力影响

    // 计算饱和水蒸气压 (单位: hPa)
    const saturationVaporPressure = 0.6108 * Math.exp((17.27 * temperature) / (temperature + 237.3));
    // 计算实际水蒸气压
    const vaporPressure = saturationVaporPressure * (humidity / 100);
    // 转换为 Pascals
    const atmosphericPressurePa = atmospheric * 100;
    const vaporPressurePa = vaporPressure * 100;
    // 计算绝对温度 (开尔文)
    const absoluteTemperature = temperature + 273.15;

    // 计算干空气压力
    const dryAirPressure = atmosphericPressurePa - vaporPressurePa;

    // 计算空气密度 (kg/m³)
    // 转换为 mg/cm³: 1 kg/m³ = 1 mg/cm³
    const airDensity = (dryAirPressure * 0.0289644) / (8.31432 * absoluteTemperature);

    // 保留4位小数并填充到输入框
    $('#airdensity').val(airDensity.toFixed(4));
}

// 页面加载完成后初始化
layui.use(['form', 'laydate', 'jquery'], function () {
    let form = layui.form;
    let laydate = layui.laydate;
    let $ = layui.jquery;
    let MODULE_PATH = rootPath + "/DetectionController";

    // 初始化日期选择器
    laydate.render({
        elem: '#certificateutil',
        format: 'yyyy-MM-dd',
        placeholder: '202X-XX-XX'
    });

    // 为温度、湿度、大气压输入框添加事件监听
    // 监听三个输入框的输入事件
    $('#temperature, #humidity, #atmospheric').on('change', function() {
        // 获取三个输入框的值（去除首尾空格）
        const temperature = $.trim($('#temperature').val());
        const humidity = $.trim($('#humidity').val());
        const atmospheric = $.trim($('#atmospheric').val());

        // 检查三个输入框是否都有值
        if (temperature && humidity && atmospheric) {
            // 三个都输入完成，执行目标方法
            calculateAirDensity();
        }
    });


    // 保存表单
    form.on('submit(detection-save)', function (data) {
        let loader = layer.load();
        // 获取客户名称输入框的值
        const customerName = document.getElementById('customer').value.trim();
        // 校验客户名称是否填写
        let msg=null;
        if (!customerName) {
            // 可以添加其他提示方式，比如在输入框旁显示文字提示
            msg = '客户名称为必填项';
            layer.msg(msg, {icon: 2, time: 1000});
            layer.close(loader);
            return false; // 阻止表单提交
        }



        $.ajax({
            url: MODULE_PATH + '/add',
            data: data.field,
            dataType: 'json',
            contentType: 'application/x-www-form-urlencoded',
            type: 'post',
            success: function (result) {
                if (result.code == 200) {
                    layer.msg(result.msg, {icon: 1, time: 1000}, function () {
                        parent.layer.close(parent.layer.getFrameIndex(window.name));//关闭当前页
                        parent.layui.table.reload("detection-table");
                        layer.close(loader);
                    });
                } else {
                    layer.msg(result.msg, {icon: 2, time: 1000});
                    layer.close(loader);
                }
            },
            error: function() {
                layer.close(loader);
                layer.msg('服务器请求失败，请重试', {icon: 2});
            }
        })
        return false;
    });
});